package com.allwees.bs.module.pms.service;

import com.allwees.bs.core.modelbase.importdata.ImportResult;
import com.allwees.bs.module.pms.entity.Product;
import com.allwees.bs.module.pms.req.ApplyProductReq;
import com.allwees.bs.module.pms.req.DoEditProductReq;
import com.allwees.bs.module.pms.req.ProductInfoReq;
import com.allwees.bs.module.pms.vo.ImportProductReq;
import com.allwees.bs.module.pms.vo.excel.ImportProductSkuBean;

import java.util.List;

/**
 * 商户Product操作接口
 *
 * @author yangylsky
 * @since 2019-08-21
 */
public interface MerchantProductService extends BaseProductService {
	/**
	 * 创建Product
	 *
	 * @param req
	 */
	Product create(ProductInfoReq req);

	/**
	 * 创建并提审Product
	 *
	 * @param req
	 */
	Product createAndApply(ProductInfoReq req);

	/**
	 * 更新Product(已创建，提审前)
	 *
	 * @param req
	 */
	boolean edit(ProductInfoReq req);

	/**
	 * 执行编辑(已提审后)
	 *
	 * @param req
	 * @return
	 */
	boolean readyToEdit(DoEditProductReq req);

	/**
	 * Product上架申请
	 *
	 * @param req
	 */
	int apply(ApplyProductReq req);

	/**
	 *
	 * @param productsSkus
	 * @param importResult
	 * @param <T>
	 */
	<T extends ImportProductSkuBean> void importProductsSkus(List<T> productsSkus, ImportResult importResult, ImportProductReq param);
}
